-- @Author: 作者QQ381990860
-- @Date:   2021-10-30 14:43:24
-- @Last Modified by:   作者QQ381990860
-- @Last Modified time: 2022-07-23 06:59:07
--======================================================================--
-- @作者: QQ381990860
-- @创建时间:   2019-12-03 02:17:19
-- @Last Modified time: 2021-01-18 01:06:44
--======================================================================--
local 场景类_快捷宝宝打书栏 = class()
local bw = require("gge包围盒")(0,0,120,37)
local wp = require("gge包围盒")(0,0,380,20)
local box = 引擎.画矩形
local remove = table.remove
local insert = table.insert
local random = 引擎.取随机整数
local min = math.min
local cfs = 删除重复
local tss = 引擎.取天生
local qmxs = 取模型
local mouseb = 引擎.鼠标弹起

local zts,tp,zts1,zts2
local insert = table.insert
local qmx = 引擎.取模型
function 场景类_快捷宝宝打书栏:初始化(根)
    self.ID = 569
    self.x = 70+(全局游戏宽度-800)/2
    self.y = 119
    self.xx = 0
    self.yy = 0
    self.注释 = "快捷宝宝打书栏"
    self.可视 = false
    self.鼠标 = false
    self.焦点 = false
    self.可移动 = true
    tp = 根
    local 按钮 = tp._按钮
    local 自适应 = 根._自适应
    local 物品 = tp._物品格子
    local 资源 = 根.资源
    self.资源组 = {
        --[0] = 自适应.创建(1,1,622,18,1,3,nil,18),
        [1] = 自适应.创建(0,1,660,405,3,9),
        [2] = 按钮.创建(自适应.创建(18,4,16,16,4,3),0,0,4,true,true),
        [3] = 按钮.创建(自适应.创建(11,4,55,20,1,3),0,0,4,true,true,"炼妖"),
        [4] = 按钮.创建(自适应.创建(11,4,75,20,1,3),0,0,4,true,true,"快捷打书"),
        [5] = 按钮.创建(自适应.创建(11,4,55,20,1,3),0,0,4,true,true,"炼化"),
        [6] = 按钮.创建(自适应.创建(11,4,55,20,1,3),0,0,4,true,true,"提取"),
        [7] = 按钮.创建(自适应.创建(20,4,18,19,4,3),0,0,4,true,true),
        [8] = 按钮.创建(自适应.创建(21,4,18,19,4,3),0,0,4,true,true),
        [9] = 按钮.创建(自适应.创建(22,4,27,20,4,3),0,0,4,true,true),
        [10] = 按钮.创建(自适应.创建(23,4,27,20,4,3),0,0,4,true,true),
        [11] = 自适应.创建(2,1,130,117,3,9),
        [12] = 根.资源:载入('JM.dll',"网易WDF动画",0x62F1C735),
        [13]= 根.资源:载入('JM.dll',"网易WDF动画",0x4EE0010A),
        [14]= 根.资源:载入('JM.dll',"网易WDF动画",0x4EE0010A),
        [15] = 按钮.创建(自适应.创建(20,4,18,19,4,3),0,0,4,true,true),
        [16] = 按钮.创建(自适应.创建(21,4,18,19,4,3),0,0,4,true,true),
        [17] = 资源:载入('JM.dll',"网易WDF动画",0x68D384BD),


    }
     self.资源组[13].当前帧=取随机数(1,self.资源组[13].数量)
      self.资源组[14].当前帧=取随机数(1,self.资源组[14].数量)
    self.物品 = {}
    for i=1,180 do
        self.物品[i] = 物品.创建(0,0,i,"炼妖物品")
    end
    for n=2,10 do
        self.资源组[n]:绑定窗口_(569)
    end
    for n=15,16 do
        self.资源组[n]:绑定窗口_(569)
    end
    self.技能 = {}
    local jn = 根._技能格子
    for i=1,36 do
        self.技能[i] = jn(0,0,i,"召唤兽资质技能")
    end
    self.技能数量 =0
    self.技能页数 =0
    self.头像组 = {}
    self.炼妖物品 = 物品.创建(0,0,0,"炼妖_物品")
    self.加入 = 0
    self.兽决加入 = 0
    self.主技能数量 = 0
    self.开始 = 1
    self.结束 = 20
    self.窗口时间 = 0
    zts = tp.字体表.普通字体
    zts2 = tp.字体表.普通字体
    zts1 = tp.字体表.描边字体
    self.炼化结束=0
    self.召唤兽 ={}
    self.道具 = {}
    self.编号 = 0
    self.类型 = "包裹"
end

function 场景类_快捷宝宝打书栏:添加召唤兽(数据)
self.召唤兽 = 数据
end

function 场景类_快捷宝宝打书栏:添加兽决数据(数据)
    self.兽决数据= 数据
end

function 场景类_快捷宝宝打书栏:添加数据类型(数据)
    self.数据类型= 数据
end

function 场景类_快捷宝宝打书栏:刷新兽决数据(数据)
    self.兽决数据= 数据
end

function 场景类_快捷宝宝打书栏:刷新召唤兽数据(数据)
self.召唤兽 = 数据
end

function 场景类_快捷宝宝打书栏:刷新数据类型(数据)
    self.数据类型= 数据
end

function 场景类_快捷宝宝打书栏:打开()
    if self.可视 then
        self.可视 = false
        self.主动 = nil
        self.主召唤兽 = nil
        self.主技能 = nil
        self.主点击 = nil
        self.兽决加入 = 0
        self.加入 = 0
        self.主技能数量 = 0
    else
        if  self.x > 全局游戏宽度 then
        self.x = 189+(全局游戏宽度-800)/2
        end
        self.炼化结束=0
        insert(tp.窗口_,self)
        tp.运行时间 = tp.运行时间 + 1
        self.窗口时间 = tp.运行时间
        self.可视 = true
        self.兽决加入 = 0
        self.加入 = 0
        self.主技能数量 = 0
    end
end





function 场景类_快捷宝宝打书栏:主置形象()
    if self.召唤兽[self.主召唤兽]  ~= nil and self.主召唤兽 ~= 0 then
        local n = 取模型(self.召唤兽[self.主召唤兽].造型)
        self.主动 = tp.资源:载入(n.战斗资源,"网易WDF动画",n.施法)
        if self.召唤兽[self.主召唤兽].饰品  then
            n = 取模型("饰品_"..self.召唤兽[self.主召唤兽].造型)
            self.资源组[24] = tp.资源:载入(n.战斗资源,"网易WDF动画",n.施法)
        end
        if self.召唤兽[self.主召唤兽].染色方案 then
             self.主动:置染色(self.召唤兽[self.主召唤兽].染色方案,self.召唤兽[self.主召唤兽].染色组[1],self.召唤兽[self.主召唤兽].染色组[2],self.召唤兽[self.主召唤兽].染色组[3],self.召唤兽[self.主召唤兽].染色组[4])
             self.主动:置方向(0)
        end
        self.主技能数量 = #self.召唤兽[self.主召唤兽].技能
    end
end

function 场景类_快捷宝宝打书栏:显示(dt,x,y)
    local bbs = self.召唤兽
    local sjsj = self.兽决数据
    local 数据类型 = self.数据类型
    local 召唤兽技能名 = {}
    local 是否拥有 = {}
    local 兽决总数据 = {}
    local 兽决当前数据 = {}
    local 循环数 = 0
    local 当前循环数 = 0
    if self.技能 ~= nil then
      for i=1,#self.技能 do
        if self.技能[i].技能 ~= nil then
            召唤兽技能名[i] = self.技能[i].技能.名称
        end
      end
    end
    for k,v in pairs(sjsj) do
        if v > 0 then
           循环数 = 循环数 + 1
           兽决总数据[循环数] = {兽决名称=k,兽决个数=v,是否拥有=0}
        end
    end
    if self.主技能数量 > 0 and self.技能 ~= nil then
        local 技能
        for i=1, #兽决总数据 do
            local a = 1
            技能 = 兽决总数据[i].兽决名称
            while a <= self.主技能数量 do
              if self.技能[a].技能 ~= nil then
                 if 技能 == self.技能[a].技能.名称 then
                     兽决总数据[i].是否拥有 = 1
                     a=1
                   break
                 else
                   a=a+1
                 end
              end
            end
        end
    end

    local 总数 = #兽决总数据
    for k,v in pairs(兽决总数据) do
        if v.是否拥有 == 0 then
            当前循环数 = 当前循环数 + 1
            兽决当前数据[当前循环数] = {兽决名称=v.兽决名称,兽决个数=v.兽决个数,是否拥有=0}
        else
            兽决当前数据[总数] = {兽决名称=v.兽决名称,兽决个数=v.兽决个数,是否拥有=1}
            总数 = 总数 - 1
        end
    end
    self.焦点 = false
    self.资源组[2]:更新(x,y)
    self.资源组[4]:更新(x,y)
    self.资源组[7]:更新(x,y)
    self.资源组[8]:更新(x,y)
    self.资源组[15]:更新(x,y)
    self.资源组[16]:更新(x,y)

    self.资源组[7]:更新(x,y,self.加入 > 0)
    self.资源组[8]:更新(x,y,self.加入 < #self.召唤兽 - 5)
    self.资源组[15]:更新(x,y,self.兽决加入 > 0)
    self.资源组[16]:更新(x,y,self.兽决加入 < #兽决总数据 - 8)
    self.资源组[4]:更新(x,y,self.主召唤兽 ~= nil)
    if self.主动 ~= nil then
        self.主动:更新(dt)
    end
    if self.副动 ~= nil then
        self.副动:更新(dt)
    end
    if self.资源组[7]:事件判断() then
        self.加入 = self.加入 - 1
    elseif self.资源组[8]:事件判断() then
        self.加入 = self.加入 + 1
    elseif self.资源组[15]:事件判断() then
        self.兽决加入 = self.兽决加入 - 1
    elseif self.资源组[16]:事件判断() then
        self.兽决加入 = self.兽决加入 + 1
    elseif self.资源组[2]:事件判断() then
        self:打开()
        return false
    end
    self.资源组[1]:显示(self.x,self.y)
    --self.资源组[0]:显示(self.x+6,self.y+3)
    --Picture.窗口标题背景_:置区域(0,0,94,16)
    --Picture.窗口标题背景_:显示(self.x+277,self.y+3)
    zts1:显示(self.x+281,self.y+3,"快 捷 打 书")
    self.资源组[11]:置宽高(130,117)
    self.资源组[11]:显示(self.x+261-236,self.y+36)
    self.资源组[11]:置宽高(150,228)
    self.资源组[11]:显示(self.x+13,self.y+164)
    self.资源组[11]:置宽高(434,208)
    self.资源组[11]:显示(self.x+175,self.y+164)
    self.资源组[2]:显示(self.x + 635,self.y + 3)

    self.资源组[7]:显示(self.x + 148,self.y + 166)
    self.资源组[8]:显示(self.x + 148,self.y + 374)
    self.资源组[15]:显示(self.x + 631,self.y + 166)
    self.资源组[16]:显示(self.x + 631,self.y + 354)

    tp.画线:置区域(0,0,15,189)
    tp.画线:显示(self.x+152,self.y+185)
    tp.画线:置区域(0,0,15,169)
    tp.画线:显示(self.x+635,self.y+185)

    if self.主动 ~= nil and self.主召唤兽 ~= nil then
        tp.影子:显示(self.x + 85,self.y + 130)
        self.主动:显示(self.x + 85,self.y + 130)
        if self.资源组[24] ~= nil then
            self.资源组[24]:更新(dt)
            self.资源组[24]:显示(self.x + 85,self.y + 130)
        end
    end

    for i=1,5 do
        if bbs[i+self.加入] ~= nil  then
            local jx = self.x+19
            local jy = self.y+(i*43)+129
            bw:置坐标(jx,jy+1)
            if self.头像组[i+self.加入] == nil or self.头像组[i+self.加入][1] ~= bbs[i+self.加入].造型 then
                self.头像组[i+self.加入] = {bbs[i+self.加入].造型}
                local n =  ModelData[self.头像组[i+self.加入][1]]
                self.头像组[i+self.加入][2] = tp.资源:载入(n.头像资源,"网易WDF动画",n.小头像)
            end
            if bw:检查点(x,y) then
                if mouseb(0) and self.鼠标 and not tp.消息栏焦点 then
                    if self.主召唤兽 ~= i + self.加入 then
                        if self.主召唤兽 == nil then
                            self.主召唤兽 = i + self.加入
                            self:主置形象()
                        elseif self.主召唤兽 ~= nil then
                            self.主召唤兽 = i + self.加入
                            self:主置形象()
                        end
                    else
                        self.主召唤兽 = nil
                        self:主置形象()
                    end
                end
                self.焦点 = true
            end
            if self.主召唤兽 == i + self.加入 then
                box(jx-2,jy-3,jx+128,jy+40,-2097481216)
            end
            tp.宠物头像背景_:显示(jx+1,jy)
            self.头像组[i+self.加入][2]:显示(jx+4,jy+4)
            if self.主召唤兽 == i + self.加入 then
                self.资源组[12]:显示(jx+92,jy+3)
                for i=1,36 do
                    self.技能[i]:置技能(bbs[self.主召唤兽].技能[i])
                end
                self.技能数量 = #bbs[self.主召唤兽].技能
                local xx = 0
                local yy = 0
                for i=1,self.技能数量 do
                    local jx = self.x+160+(xx*41)
                    local jy = self.y+27+(yy*41)
                    self.资源组[17]:显示(jx,jy)
                    self.技能[i]:置坐标(jx+3,jy+2)
                    self.技能[i]:显示(x,y,self.鼠标)
                    self.技能[i]:显示(x,y,self.鼠标)
                    if self.技能[i].焦点 and self.技能[i].技能 ~= nil then
                        tp.提示:BB技能(x,y,self.技能[i].技能)
                    end
                    xx = xx + 1
                    if xx > 11 then
                        xx = 0
                        yy = yy + 1
                    end
                end

                for a=1,8 do
                    if  兽决当前数据[a+self.兽决加入] ~= nil  then
                        local jx = self.x+190
                        local jy = self.y+(a*25)+145
                        wp:置坐标(jx,jy+1)
                        if wp:检查点(x,y) then
                            if mouseb(0) and self.鼠标 and not tp.消息栏焦点 then
                                if self.主技能 ~= a + self.兽决加入 then
                                    if self.主技能 == nil then
                                        self.主技能 = a + self.兽决加入
                                    elseif self.主技能 ~= nil then
                                        self.主技能 = a + self.兽决加入
                                    end
                                else
                                    self.主技能 = nil
                                end
                            end
                            self.焦点 = true
                        end
                        if self.资源组[4]:事件判断() then
                            if self.主技能 == a + self.兽决加入 then

                               客户端:发送数据(self.主召唤兽, 467, 13, 兽决当前数据[a+self.兽决加入].兽决名称,数据类型)
                            end
                        end
                        if self.主技能 == a + self.兽决加入 then
                            box(jx-2,jy+2,jx+388,jy+20,-2097481216)
                            self.资源组[4]:显示(self.x + 550,self.y + 377,true)
                        end
                        tp.字体表.描边字体:置颜色(0xFFaf0118):显示(jx+4,jy+4,兽决当前数据[a+self.兽决加入].兽决名称)
                        tp.字体表.描边字体:置颜色(0xFFaf0118):显示(jx+130,jy+4,"当前剩余:"..兽决当前数据[a+self.兽决加入].兽决个数.." 本")
                        if 兽决当前数据[a+self.兽决加入].是否拥有 == 0 then
                           tp.字体表.描边字体:置颜色(0xFFaf0118):显示(jx+250,jy+4,"该技能是否拥有:否")
                        else
                           tp.字体表.描边字体:置颜色(0xFFaf0118):显示(jx+250,jy+4,"该技能是否拥有:是")
                        end
                        if self.主技能 == a + self.兽决加入 then
                            self.资源组[12]:显示(jx+380,jy-13)
                        end
                    end
                end
            end
            if bbs[i+self.加入].参战信息 ~= nil then
                zts:置颜色(-65536)
            else
                zts:置颜色(-16777216)
            end
            zts:显示(jx+41,jy+4,bbs[i+self.加入].名称)
            zts:显示(jx+41,jy+21,bbs[i+self.加入].等级.."级")
        end
    end
end

function 场景类_快捷宝宝打书栏:检查点(x,y)
    if self.资源组[1]:是否选中(x,y)  then
        return true
    end
end

function 场景类_快捷宝宝打书栏:初始移动(x,y)
    tp.运行时间 = tp.运行时间 + 1
    if not tp.消息栏焦点 then
        self.窗口时间 = tp.运行时间
    end
    if not self.焦点 then
        tp.移动窗口 = true
    end
    if  self.鼠标 and  not self.焦点 then
        self.xx = x - self.x
        self.yy = y - self.y
    end
end

function 场景类_快捷宝宝打书栏:开始移动(x,y)
    if self.鼠标 then
        self.x = x - self.xx
        self.y = y - self.yy
    end
end

return 场景类_快捷宝宝打书栏








